import request from "@/utils/request";

// 首页大屏相关 API 与类型定义

/** LCD 灯条目 */
export interface LcdItem {
  name: string;
  status: number; // 0: 关/正常, 1: 亮/告警, 2: 检修等自定义
}

/** 状态栏条目 */
export interface StatusBarItem {
  index: number;
  time: string; // yyyy-MM-dd HH:mm:ss.SSS
  name: string;
}

/** 变位信息条目 */
export interface StateChangeItem {
  index: number;
  time: string;
  name: string;
}

/** 通道值条目（原始完整结构，包含中文键名） */
export interface ChannelItem {
  序号: number;
  名称: string;
  量值: number;
  通道系数?: number;
  通道零漂?: number;
  校正零漂?: number;
  通道相位?: number;
  通道角度偏差?: number;
}

/** 通道值精简视图 */
export interface ChannelSimpleItem {
  序号: number;
  名称: string;
  量值: number;
}

/** 硬压板条目 */
export interface HjumperItem {
  ID: number;
  Name: string;
  Type: number; // 0/1 类型
  Status: boolean;
}

/** 统一导出 API */
export const HMI_HOME_API = {
  /** 获取 LCD 灯数据 */
  fetchLcd(): Promise<LcdItem[]> {
    return request<void, LcdItem[]>({ url: "/api/lcd", method: "get" });
  },

  /** 获取状态栏数据 */
  fetchStatusBar(cpu: number = 1): Promise<StatusBarItem[]> {
    return request<void, StatusBarItem[]>({ url: `/api/status-bar/${cpu}`, method: "get" });
  },

  /** 获取变位信息 */
  fetchStateChange(cpu: number = 1): Promise<StateChangeItem[]> {
    return request<void, StateChangeItem[]>({ url: `/api/state-change/${cpu}`, method: "get" });
  },

  /** 获取通道值（完整结构） */
  fetchChannels(cpu: number = 1): Promise<ChannelItem[]> {
    return request<void, ChannelItem[]>({ url: `/api/channel/${cpu}`, method: "get" });
  },

  /** 获取硬压板信息 */
  fetchHjumpers(cpu: number = 1): Promise<HjumperItem[]> {
    return request<void, HjumperItem[]>({ url: `/api/hjumper/${cpu}`, method: "get" });
  },
};

